package dviz.visualAnnotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import dviz.visualAspect.MetaPropertyMap.Type;

/**
 * @author guRuQu
 * 
 *         This annotation will map a field of an Object with a property of
 *         animation object in visualization domain. Field annotated with this
 *         annotation will be queried by animation system in order to
 *         synchronize with underlying model. A getter method must exist for
 *         field annotated.
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface PropertyMap {

	/**
	 * @return  Name of property inside animation object in visualization domain  that it is mapped to.
	 */

	public enum FieldType{
		/**
		 * @uml.property  name="fIELD"
		 * @uml.associationEnd  
		 */
		FIELD,/**
		 * @uml.property  name="fUNCTION"
		 * @uml.associationEnd  
		 */
		FUNCTION
	}

	public String PropertyName() default "";
	public FieldType FieldType() default FieldType.FIELD;  
	
	public Type MapType() default Type.INTERPOLATE;
}
